// 类型推断：type.inference：是 teypScript 自己做的事，有的情况下数据的类型它能自己推断出来
// 类型注解：type.annotation：而如果 TS 自己推断不出数据类型时，就需要我们另行进行类型的注解

// 如果 TS 能够自动分析出变量类型，我们就什么也不需要做了
// 如果 TS 无法自动分析出变量类型，我们就需要使用类型注解

// 简化：类型推断不够就需要类型注解

function getTotal(one: number, tow: number) {
  return one + tow
}
// 如果不给 getTotal 函数的形参 noe 和 tow 指定类型，则这里的 total 的类型也不能分析出来
// 而，给定 noe 和 tow 都是 number 类型，则 total 能自动分析出类型为 number 这时候我们就什么也不需要做了
const total = getTotal(1, 2)

// 注：只要是对象的形式指定类型都要以这样的方式：{one}: {one: number}
// 多属性时：{one, tow}: {one: number, tow: string}
function getNumber({ one }: { one: number }) {
  return one
}
const num = getNumber({ one: 2 })
